package cn.eu.common.query.annotation;

import com.github.yulichang.toolkit.Constant;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

public @interface Join {
    /**
     * 连接模式
     */
    Mode mode() default Mode.INNER;
    /**
     * 左表
     */
    Table mainTable() default @Table;
    /**
     * 右表
     */
    Table joinTable();
    /**
     * 条件
     */
    Condition[] on() default {};

    /**
     * 连接模式枚举
     */
    @Getter
    @RequiredArgsConstructor
    enum Mode {
        /**
         * 左连接
         */
        LEFT(Constant.LEFT_JOIN),
        /**
         * 右连接
         */
        RIGHT(Constant.RIGHT_JOIN),
        /**
         * 内连接
         */
        INNER(Constant.INNER_JOIN),
        /**
         * 全连接
         */
        FULL(Constant.FULL_JOIN),
        ;

        private final String keyWord;
    }
}
